Retour à la page d’accueil


Lors de cette séance nous allons apprendre:

  1. A changer l’ordre des données dans un graphique

  2. A selectionner des lignes avec la fonction filter

  3. A modifier ou créer des colonnes avec la fonction mutate


Préparation de l’environnement de travail

Tout d’abord ouvrez le projet R, créez un nouveau script R et préparez votre environnement de travail:

# Chargez la librairie `tidyverse` (aide: utilisez la fonction `library()`)


# Importer `burghardt_et_al_2015_expt1.txt` et mettez le dans un objet appelé `expt1`
#(aide: utilisez la fonction `read_tsv()`)


1. Changer l’ordre des données dans un graphique en utilisant des facteurs

Par défaut, les catégories dans un graphique sont ordonnées alphabétiquement. Bien souvent ce n’est pas l’ordre que nous voulons.

Par exemple, essayons de reproduire le graphique suivant:

filter(expt1, temperature==22, day.length==16) %>% 
ggplot(aes(x=genotype, y=days.to.bolt, fill=fluctuation)) +
  geom_boxplot()

Les génotypes ne sont pas dans le même ordre car ggplot a utilisé l’ordre alphabétique, même s’ils n’étaient pas dans cet ordre dans le tableau.

Afin de changer l’ordre nous devons utiliser un autre type de variable, les facteurs. Les facteurs sont des variables spéciales de type caractère pour lesquels nous pouvons définir des niveaux ( levels ), c’est à dire les modalités prédéfinies de cette variable. Ces niveaux sont les valeurs uniques de la variable auxquelles un ordre peut être attaché.

Nous pouvons convertir une variable en facteurs en utilisant la fonction factor():

# Convertissons genotype dans expt1 en facteurs:
factor(expt1$genotype)
##   [1] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##   [7] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [13] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [19] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [25] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [31] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [37] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [43] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [49] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [55] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [61] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [67] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [73] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [79] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [85] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [91] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [97] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
## [103] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
## [109] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
## [115] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
## [121] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
## [127] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
## [133] Col Ama    Col Ama    Col Ama    Col FRI    Col FRI    Col FRI   
## [139] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [145] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [151] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [157] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [163] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [169] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [175] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [181] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [187] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [193] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [199] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [205] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [211] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [217] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [223] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [229] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [235] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [241] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [247] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [253] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [259] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    fca-6     
## [265] fca-6      fca-6      fca-6      fca-6      fca-6      fca-6     
## [271] fca-6      fca-6      fca-6      fca-6      fca-6      fca-6     
## [277] fca-6      fca-6      fca-6      fca-6      fca-6      fca-6     
## [283] fca-6      fca-6      fca-6      fca-6      fca-6      fca-6     
## [289] fca-6      fca-6      fca-6      fca-6      fca-6      fca-6     
## [295] fca-6      fca-6      fca-6      fca-6      fca-6      fca-6     
## [301] fca-6      fca-6      fca-6      fca-6      fca-6      fca-6     
## [307] fca-6      fca-6      fca-6      fca-6      fca-6      fca-6     
## [313] fca-6      fca-6      fca-6      fca-6      fca-6      fca-6     
## [319] fca-6      fca-6      fca-6      fca-6      fca-6      fca-6     
## [325] fca-6      fca-6      fca-6      flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [331] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [337] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [343] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [349] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [355] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [361] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [367] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [373] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [379] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [385] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [391] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [397] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [403] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [409] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [415] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [421] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [427] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [433] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [439] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [445] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [451] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [457] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [463] flc-3 FRI  flk-1      flk-1      flk-1      flk-1      flk-1     
## [469] flk-1      flk-1      flk-1      flk-1      flk-1      flk-1     
## [475] flk-1      flk-1      flk-1      flk-1      flk-1      flk-1     
## [481] flk-1      flk-1      flk-1      flk-1      flk-1      flk-1     
## [487] flk-1      flk-1      flk-1      flk-1      flk-1      flk-1     
## [493] flk-1      flk-1      flk-1      flk-1      flk-1      flk-1     
## [499] flk-1      flk-1      flk-1      flk-1      flk-1      flk-1     
## [505] flk-1      flk-1      flk-1      flk-1      flk-1      flk-1     
## [511] flk-1      flk-1      flk-1      flk-1      flk-1      flk-1     
## [517] flk-1      flk-1      flk-1      flk-1      flk-1      flk-1     
## [523] flk-1      fve-3      fve-3      fve-3      fve-3      fve-3     
## [529] fve-3      fve-3      fve-3      fve-3      fve-3      fve-3     
## [535] fve-3      fve-3      fve-3      fve-3      fve-3      fve-3     
## [541] fve-3      fve-3      fve-3      fve-3      fve-3      fve-3     
## [547] fve-3      fve-3      fve-3      fve-3      fve-3      fve-3     
## [553] fve-3      fve-3      fve-3      fve-3      fve-3      fve-3     
## [559] fve-3      fve-3      fve-3      fve-3      fve-3      fve-3     
## [565] fve-3      fve-3      fve-3      fve-3      fve-3      fve-3     
## [571] fve-3      fve-3      fve-3      fve-3      fve-3      fve-3     
## [577] fve-3      fve-3      fve-3      fve-3      fve-3      fve-3     
## [583] fve-3      ld-1       ld-1       ld-1       ld-1       ld-1      
## [589] ld-1       ld-1       ld-1       ld-1       ld-1       ld-1      
## [595] ld-1       ld-1       ld-1       ld-1       ld-1       ld-1      
## [601] ld-1       ld-1       ld-1       ld-1       ld-1       ld-1      
## [607] ld-1       ld-1       ld-1       ld-1       ld-1       ld-1      
## [613] ld-1       ld-1       ld-1       ld-1       ld-1       ld-1      
## [619] ld-1       ld-1       ld-1       ld-1       ld-1       ld-1      
## [625] ld-1       ld-1       ld-1       ld-1       ld-1       ld-1      
## [631] ld-1       ld-1       ld-1       ld-1       ld-1       ld-1      
## [637] ld-1       ld-1       ld-1       ld-1       ld-1       ld-1      
## [643] ld-1       Ler-1      Ler-1      Ler-1      Ler-1      Ler-1     
## [649] Ler-1      Ler-1      Ler-1      Ler-1      Ler-1      Ler-1     
## [655] Ler-1      Ler-1      Ler-1      Ler-1      Ler-1      Ler-1     
## [661] Ler-1      Ler-1      Ler-1      Ler-1      Ler-1      Ler-1     
## [667] Ler-1      Ler-1      Ler-1      Ler-1      Ler-1      Ler-1     
## [673] Ler-1      Ler-1      Ler-1      Ler-1      Ler-1      Ler-1     
## [679] Ler-1      Ler-1      Ler-1      Ler-1      Ler-1      Ler-1     
## [685] Ler-1      Ler-1      Ler-1      Ler-1      Ler-1      Ler-1     
## [691] Ler-1      Ler-1      Ler-1      Ler-1      Ler-1      Ler-1     
## [697] Ler-1      Ler-1      Ler-1      Ler-1      Ler-1      Ler-1     
## [703] Ler-1      Ler-1      Ler-1      Ler-1      Ler-1      Ler-1     
## [709] Ler-1      Ler-1      Ler-1      prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [715] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [721] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [727] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [733] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [739] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [745] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [751] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [757] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [763] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [769] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [775] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [781] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [787] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [793] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [799] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [805] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [811] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [817] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [823] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [829] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [835] prmt5 FRI  prmt5 FRI  vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [841] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [847] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [853] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [859] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [865] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [871] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [877] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [883] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [889] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [895] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [901] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [907] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [913] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [919] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [925] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [931] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [937] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [943] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [949] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [955] vin3-4 FRI vin3-4 FRI vin3-4 FRI
## 10 Levels: Col Ama Col FRI fca-6 flc-3 FRI flk-1 fve-3 ld-1 Ler-1 ... vin3-4 FRI

Nous pouvons voir qu’il y a 10 niveaux, correspondant à chacun des génotypes, et qu’ils sont par ordre alphabétique.

Nous pouvons spécifier l’ordre des niveaux dans la fonction:

factor(expt1$genotype, levels = c("Ler-1", "fca-6", "Col Ama", "flc-3 FRI", "Col FRI", "ld-1", "flk-1",
                                  "fve-3", "prmt5 FRI","vin3-4 FRI"))
##   [1] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##   [7] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [13] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [19] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [25] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [31] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [37] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [43] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [49] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [55] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [61] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [67] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [73] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [79] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [85] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [91] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [97] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
## [103] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
## [109] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
## [115] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
## [121] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
## [127] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
## [133] Col Ama    Col Ama    Col Ama    Col FRI    Col FRI    Col FRI   
## [139] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [145] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [151] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [157] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [163] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [169] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [175] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [181] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [187] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [193] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [199] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [205] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [211] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [217] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [223] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [229] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [235] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [241] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [247] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [253] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [259] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    fca-6     
## [265] fca-6      fca-6      fca-6      fca-6      fca-6      fca-6     
## [271] fca-6      fca-6      fca-6      fca-6      fca-6      fca-6     
## [277] fca-6      fca-6      fca-6      fca-6      fca-6      fca-6     
## [283] fca-6      fca-6      fca-6      fca-6      fca-6      fca-6     
## [289] fca-6      fca-6      fca-6      fca-6      fca-6      fca-6     
## [295] fca-6      fca-6      fca-6      fca-6      fca-6      fca-6     
## [301] fca-6      fca-6      fca-6      fca-6      fca-6      fca-6     
## [307] fca-6      fca-6      fca-6      fca-6      fca-6      fca-6     
## [313] fca-6      fca-6      fca-6      fca-6      fca-6      fca-6     
## [319] fca-6      fca-6      fca-6      fca-6      fca-6      fca-6     
## [325] fca-6      fca-6      fca-6      flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [331] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [337] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [343] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [349] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [355] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [361] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [367] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [373] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [379] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [385] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [391] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [397] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [403] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [409] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [415] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [421] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [427] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [433] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [439] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [445] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [451] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [457] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [463] flc-3 FRI  flk-1      flk-1      flk-1      flk-1      flk-1     
## [469] flk-1      flk-1      flk-1      flk-1      flk-1      flk-1     
## [475] flk-1      flk-1      flk-1      flk-1      flk-1      flk-1     
## [481] flk-1      flk-1      flk-1      flk-1      flk-1      flk-1     
## [487] flk-1      flk-1      flk-1      flk-1      flk-1      flk-1     
## [493] flk-1      flk-1      flk-1      flk-1      flk-1      flk-1     
## [499] flk-1      flk-1      flk-1      flk-1      flk-1      flk-1     
## [505] flk-1      flk-1      flk-1      flk-1      flk-1      flk-1     
## [511] flk-1      flk-1      flk-1      flk-1      flk-1      flk-1     
## [517] flk-1      flk-1      flk-1      flk-1      flk-1      flk-1     
## [523] flk-1      fve-3      fve-3      fve-3      fve-3      fve-3     
## [529] fve-3      fve-3      fve-3      fve-3      fve-3      fve-3     
## [535] fve-3      fve-3      fve-3      fve-3      fve-3      fve-3     
## [541] fve-3      fve-3      fve-3      fve-3      fve-3      fve-3     
## [547] fve-3      fve-3      fve-3      fve-3      fve-3      fve-3     
## [553] fve-3      fve-3      fve-3      fve-3      fve-3      fve-3     
## [559] fve-3      fve-3      fve-3      fve-3      fve-3      fve-3     
## [565] fve-3      fve-3      fve-3      fve-3      fve-3      fve-3     
## [571] fve-3      fve-3      fve-3      fve-3      fve-3      fve-3     
## [577] fve-3      fve-3      fve-3      fve-3      fve-3      fve-3     
## [583] fve-3      ld-1       ld-1       ld-1       ld-1       ld-1      
## [589] ld-1       ld-1       ld-1       ld-1       ld-1       ld-1      
## [595] ld-1       ld-1       ld-1       ld-1       ld-1       ld-1      
## [601] ld-1       ld-1       ld-1       ld-1       ld-1       ld-1      
## [607] ld-1       ld-1       ld-1       ld-1       ld-1       ld-1      
## [613] ld-1       ld-1       ld-1       ld-1       ld-1       ld-1      
## [619] ld-1       ld-1       ld-1       ld-1       ld-1       ld-1      
## [625] ld-1       ld-1       ld-1       ld-1       ld-1       ld-1      
## [631] ld-1       ld-1       ld-1       ld-1       ld-1       ld-1      
## [637] ld-1       ld-1       ld-1       ld-1       ld-1       ld-1      
## [643] ld-1       Ler-1      Ler-1      Ler-1      Ler-1      Ler-1     
## [649] Ler-1      Ler-1      Ler-1      Ler-1      Ler-1      Ler-1     
## [655] Ler-1      Ler-1      Ler-1      Ler-1      Ler-1      Ler-1     
## [661] Ler-1      Ler-1      Ler-1      Ler-1      Ler-1      Ler-1     
## [667] Ler-1      Ler-1      Ler-1      Ler-1      Ler-1      Ler-1     
## [673] Ler-1      Ler-1      Ler-1      Ler-1      Ler-1      Ler-1     
## [679] Ler-1      Ler-1      Ler-1      Ler-1      Ler-1      Ler-1     
## [685] Ler-1      Ler-1      Ler-1      Ler-1      Ler-1      Ler-1     
## [691] Ler-1      Ler-1      Ler-1      Ler-1      Ler-1      Ler-1     
## [697] Ler-1      Ler-1      Ler-1      Ler-1      Ler-1      Ler-1     
## [703] Ler-1      Ler-1      Ler-1      Ler-1      Ler-1      Ler-1     
## [709] Ler-1      Ler-1      Ler-1      prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [715] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [721] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [727] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [733] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [739] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [745] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [751] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [757] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [763] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [769] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [775] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [781] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [787] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [793] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [799] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [805] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [811] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [817] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [823] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [829] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [835] prmt5 FRI  prmt5 FRI  vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [841] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [847] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [853] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [859] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [865] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [871] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [877] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [883] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [889] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [895] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [901] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [907] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [913] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [919] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [925] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [931] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [937] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [943] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [949] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [955] vin3-4 FRI vin3-4 FRI vin3-4 FRI
## 10 Levels: Ler-1 fca-6 Col Ama flc-3 FRI Col FRI ld-1 flk-1 fve-3 ... vin3-4 FRI

Maintenant que nous avons converti la variable ne facteur avec l’ordre des niveaux que nous voulons, nous pouvons l’utiliser pour représenter les variables catégoriques avec l’ordre que nous voulons dans un graphique:

mutate(expt1, genotype = factor(genotype, levels = c("Ler-1", "fca-6", "Col Ama", "flc-3 FRI", "Col FRI",
                                                     "ld-1", "flk-1", "fve-3", "prmt5 FRI","vin3-4 FRI"))) %>% 
  filter( temperature==22, day.length==16) %>%
  ggplot(aes(x=genotype, y=days.to.bolt, fill=fluctuation)) +
  geom_boxplot()

Nous pouvons aussi ordonner les génotypes en fonction de days.to.bolt. Pour cela nous utilisons la fonction fct_reorder() dans le package forcats (qui est inclus dans tidyverse)

  filter(expt1, temperature==22, day.length==16) %>% 
  mutate( genotype = fct_reorder(genotype, days.to.bolt)) %>% 
  ggplot(aes(x=genotype, y=days.to.bolt, fill=fluctuation)) +
  geom_boxplot()

Exercice 3

Représenter des violin plots de cauline.leaf.num pour les génotypes de background “Col”, colorés par la température et ce uniquement pour les plantes sans fluctuation de température et qui sont en jours longs (16 h).

Ordonnez les génotypes selon ces deux cas (un graphique par cas):

-1 Dans l’ordre suivant: “Col Ama”, “ld-1”, “fve-3”, “flk-1”

-2 Dans l’ordre de la valeur de cauline.leaf.num


2. Selectionner des lignes avec la fonction filter

Avec la fonction filter(), nous pouvons garder toutes les lignes de notre table qui correspondent à des plantes qui ont subies une vernalisation.

Tout d’abord, nous devons connaitre les différentes valeurs de la colonne vernalization. Comme nous pouvons voir, il y a deux options: ‘NV’ et ‘V’.

unique(expt1$vernalization)
## [1] "NV" "V"

(note: $ permet de sélectionner une colonne en particulier de la table)

Comme nous voulons garder les plantes qui ont subies une vernalisation, nous devons filtrer les données pour garder les lignes pour lesquelles il y a “V” dans la colonne vernalization:

filter(expt1, vernalization == "V")
## # A tibble: 330 x 15
##    plant_nb genotype background temperature fluctuation day.length vernalization
##       <dbl> <chr>    <chr>            <dbl> <chr>            <dbl> <chr>        
##  1        1 Col Ama  Col                 12 Con                 16 V            
##  2        2 Col Ama  Col                 12 Con                 16 V            
##  3        3 Col Ama  Col                 12 Con                 16 V            
##  4        4 Col Ama  Col                 12 Con                 16 V            
##  5        5 Col Ama  Col                 12 Con                 16 V            
##  6        6 Col Ama  Col                 12 Con                 16 V            
##  7        7 Col Ama  Col                 12 Con                 16 V            
##  8        8 Col Ama  Col                 12 Con                 16 V            
##  9        1 Col Ama  Col                 12 Con                  8 V            
## 10        2 Col Ama  Col                 12 Con                  8 V            
## # … with 320 more rows, and 8 more variables: survival.bolt <chr>, bolt <chr>,
## #   days.to.bolt <dbl>, days.to.flower <dbl>, rosette.leaf.num <dbl>,
## #   cauline.leaf.num <dbl>, blade.length.mm <dbl>, total.leaf.length.mm <dbl>

Nous pouvons utiliser les opérateurs suivant pour définir les conditions pour filtrer les données:

Opérateur Condition de sélection Exemple
< inférieur à filter(expt1, days.to.bolt < 20)
<= inférieur ou égal à filter(expt1, days.to.bolt <= 20)
> supérieur à filter(expt1, days.to.bolt > 20)
>= supérieur ou égal à filter(expt1, days.to.bolt >= 20)
== égal à filter(expt1, days.to.bolt == 20)
!= différent de filter(expt1, days.to.bolt != 20)
%in% est contenu dans filter(expt1, genotype %in% c("Col FRI", "Ler-1"))

Il est aussi possible de combiner plusieurs conditions de sélection avec les opérateurs suivant:

Opérateur Signification Exemple
& ET filter(expt1, days.to.bolt == 20 & genotype == "Ler-1")
| OU filter(expt1, rosette.leaf.num < 8 | rosette.leaf.num > 100)

Nous pouvons aussi identifier les données manquantes (NA) avec la fonction is.na() ou sa négation (en utilisant !):

Opérateur Signification Exemple
is.na() données manquante filter(expt1, is.na(rosette.leaf.num))
!is.na() donnée non manquante filter(expt1, !is.na(rosette.leaf.num))

source de l’image

Par exemple, nous pouvons sélectionner les plantes qui ont été vernalisées ET qui ont poussées avec une température fluctuante:

filter(expt1, vernalization == "V" & fluctuation == "Var")

Il est aussi possible de sélectionner les plantes qui ont poussées avec 8h de jours OU qui fleurissent tardivement:

filter(expt1, day.length == "8" | days.to.bolt > 85)

Exercice 2: Filtrez les données pour garder les plantes selon les 3 cas de figures suivant (indépendants les uns des autres):

  1. Plantes qui ne sont pas du background Ler et qui ont été traitées avec une température fluctuante.
  2. Plantes qui ont fleuries (bolt) en moins de 57 jours et qui ont moins de 40 feuilles de rosette
  3. Plantes du génotype fca-6 pour qui le blade.length.mm n’est pas manquant

Ajouter un lien avec un graphique

3. Modifier ou créer des colonnes avec la fonction mutate

La fonction mutate() permet d’ajouter de nouvelles variables (i.e. nouvelles colonnes) dans une table, ou de modifier des colonnes déjà existantes.

source de l’image

Par exemple, ajoutons une colonne leaf.length.cm qui va contenir la longueur des feuilles en cm. Pour cela nous devons créer une nouvelle colonne en utilisant la colonne leaf.length.mm qui existe dans la table.

# Créez une nouvelle table avec la colonne supplémentare  
expt1.cm <- mutate(expt1, total.leaf.length.cm = total.leaf.length.mm/10)

# Vérifier que la nouvelle colonne est bien là
colnames(expt1.cm)
##  [1] "plant_nb"             "genotype"             "background"          
##  [4] "temperature"          "fluctuation"          "day.length"          
##  [7] "vernalization"        "survival.bolt"        "bolt"                
## [10] "days.to.bolt"         "days.to.flower"       "rosette.leaf.num"    
## [13] "cauline.leaf.num"     "blade.length.mm"      "total.leaf.length.mm"
## [16] "total.leaf.length.cm"

Nous pouvons aussi créer et modifier plus d’une colonne à la fois, en les séparant par une virgule (,) dans la fonction mutate():

# Créez deux nouvelles colonnes
expt1.cm <- mutate(expt1, 
                   blade.length.cm = blade.length.mm/10,
                   total.leaf.length.cm = total.leaf.length.mm/10)

# Vérifier que les nouvelles colonnes sont bien là
colnames(expt1.cm)
##  [1] "plant_nb"             "genotype"             "background"          
##  [4] "temperature"          "fluctuation"          "day.length"          
##  [7] "vernalization"        "survival.bolt"        "bolt"                
## [10] "days.to.bolt"         "days.to.flower"       "rosette.leaf.num"    
## [13] "cauline.leaf.num"     "blade.length.mm"      "total.leaf.length.mm"
## [16] "blade.length.cm"      "total.leaf.length.cm"

Attention!! Si vous utilisez le nom d’une colonne déjà existante, vous allez la modifier et non créer une nouvelle colonne.

Exercice 1:

Créez une nouvelle colonne (blade.ratio) avec le ratio de blade.length.mm et total.leaf.length.mm

Pour aller plus loin

Nous n’avons vu que quelques unes des possibilités pour modifier ou réorganiser des données dans un tableau avec les fonctions dans tidyverse

Afin de découvrir les autres fonctions et de comprendre comment les utiliser, referez vous aux anti-sèches:

antisèche pour la réorganisation de données



Retour à la page d’accueil